home *** CD-ROM | disk | FTP | other *** search
- package engine.dynamicObjects
- {
- import engine.BitmapLibrary;
- import engine.Engine;
- import engine.WorldScene;
-
- public class InkBlob extends DynamicObject
- {
-
-
- private var _scaleSin:Number = 0;
-
- private var _scaleSinVel:Number = 0.25;
-
- public function InkBlob()
- {
- _scaleSin = 0;
- _scaleSinVel = 0.25;
- _bmdArray = BitmapLibrary.Clips.DYN_InkBlob;
- super(_bmdArray[0]);
- _drawMethod = DMETHOD.Slow;
- _objectType = OBJ_TYPES.GP;
- solid = true;
- _blendMode = "multiply";
- _auditThreshhold = 100;
- }
-
- public function launchAt(obj:*, camLoc:*) : *
- {
- var angleOffsetRand:Number = NaN;
- var aoNum:Number = NaN;
- var speedBoost:Number = NaN;
- var sx:Number = NaN;
- var sy:Number = NaN;
- var tx:Number = NaN;
- var ty:Number = NaN;
- var tR:Number = NaN;
- var vec:Object = null;
- angleOffsetRand = 0;
- aoNum = 0.5 - Engine.Instance.Difficulty * 0.04;
- if(aoNum < 0)
- {
- aoNum = 0;
- }
- if(aoNum > 0)
- {
- if(Math.random() > 0.5)
- {
- angleOffsetRand = aoNum;
- }
- else
- {
- angleOffsetRand = -aoNum;
- }
- }
- speedBoost = Engine.Instance.Difficulty * 0.1;
- if(speedBoost > 5)
- {
- speedBoost = 5;
- }
- sx = x + -camLoc.x * z;
- sy = y + -camLoc.y * z;
- tx = obj.x + -camLoc.x * obj.z;
- ty = obj.y + -camLoc.y * obj.z;
- tR = getRadians(sx,sy,tx,ty);
- vec = getVector(tR + angleOffsetRand,8.5 + speedBoost);
- vx = vec.x;
- vy = vec.y - 6;
- }
-
- override public function fStep() : *
- {
- var id:* = undefined;
- super.fStep();
- if(Math.random() < 0.145)
- {
- id = new InkDrop();
- WorldScene.Instance.createFX(this,id);
- id.vx = Math.random() * 0.08 - 0.04;
- }
- _scaleSin += _scaleSinVel;
- s = 3.75 + 0.75 * Math.sin(_scaleSin);
- r += 0.1;
- vy += 0.14;
- }
- }
- }
-